#!/usr/bin/env ruby
# frozen_string_literal: true

require 'optparse'
require_relative 'lib/shell'

ARGV.push('--help') if ARGV.empty?

@commands = Dir.children(File.join(__dir__, 'scripts'))

def print_help
  puts <<~END_DOC
    一键配置各种环境，现支持的脚本包括：

    #{
      @commands.map { |command| '    ' + command }.join("\n")
    }

    选项：

        -c --config    将 oneclick-setup 的配置选项添加到 shell rc 文件

  END_DOC
end

def make_config
  shell.rc_append 'export PATH=~/.config/oneclick-setup:$PATH',
                  'source ~/.config/oneclick-setup/bash_completion'
end

def execute_command(command)
  if @commands.include?(command)
    exec File.join(__dir__, 'scripts', command), *ARGV
  else
    shell.exit(Shell::Errors::COMMAND_NOT_FOUND, "未定义的一键安装命令：#{command}")
  end
end

command = ARGV.shift
case command
when '-h', '--help'
  print_help
when '-c', '--config'
  make_config
else
  execute_command command
end
